O software de cálculo estrutural RFEM 6 é a base de um sistema de software composto por módulos. O programa principal RFEM 6 é utilizado para definir estruturas, materiais e ações para sistemas estruturais planos e espaciais constituídos por lajes, paredes, cascas e barras. O programa também permite criar estruturas combinadas, bem como modelar sólidos e elementos de contacto.
O RSTAB 9 é um programa de cálculo de estruturas reticuladas e pórticos 3D que reflete o estado atual da tecnologia e ajuda os engenheiros de estruturas a cumprir os requisitos da engenharia civil moderna.
Costuma perder muito tempo a calcular secções? A Dlubal Software e o programa autónomo RSECTION facilitam-lhe o trabalho determinando propriedades de secções e efetuando análises de tensões para diferentes secções.
Sabe sempre de onde vem o vento? Da direção da inovação, é claro! Com o RWIND 2, dispõe de um programa que utiliza um túnel de vento digital para a simulação numérica de fluxos de vento. O programa fornece estes fluxos em torno de eventuais geometrias de edifícios e determina as cargas de vento nas superfícies.
Procura uma vista geral de zonas de cargas de neve, velocidades de vento e cargas sísmicas? Então, está no sítio certo. Os mapas de zonas de carga são adequados para a determinação rápida e fácil de cargas de neve, velocidades de vento e cargas sísmicas de acordo com o Eurocódigo e outras normas internacionais.
Gostaria de experimentar o poder dos programas da Dlubal Software? Esta é a sua oportunidade! Com a versão completa gratuita de 90 dias, pode testar todos os nossos programas em detalhe.
Uma função para articulações de linha não lineares não está atualmente disponível na Python High Level Library. No entanto, uma vez que os parâmetros definidos pelo utilizador podem ser utilizados como habitualmente no método para as articulações de linha, não existe qualquer problema em gerar também articulações de linha não lineares.
No programa de exemplo, são criadas primeiro duas superfícies retangulares com apoios de nó que se encontram ligadas na linha 6.
A definição da articulação de linha não linear começa na linha 39. Primeiro, é criado um dicionário p com os parâmetros. É necessário definir três graus de liberdade de deslocamento e um grau de liberdade de torção. O valor 0.0 significa que o grau de liberdade é livre. Se em vez disso for escrito um valor numérico, este será interpretado como uma mola. Certifique-se de que as unidades de base do SI são utilizadas aqui. Utilizando inf, o grau de liberdade é definido como fixo.
p
0.0
inf
Deve ser dada uma não linearidade na direção y. Esta é definida com a chave translational_release_u_y_nonlinearity. Este artigo descreve como determinar os valores necessários, tais como NONLINEARITY_TYPE_FAILURE_IF_POSITIVE.
translational_release_u_y_nonlinearity
NONLINEARITY_TYPE_FAILURE_IF_POSITIVE
A seguinte macro VBA mostra a criação de um apoio de nó com a não linearidade "Atividade parcial". O código fonte pode ser encontrado em Downloads.
Opção Explicit
'--------------------------Sub SetNSupports()'--------------------------Dim model As RFEM5.modelDim data As IModelDataDim support(0) As RFEM5.NodalSupportDim ISup As RFEM5.INodalSupportDim ISupPA As RFEM5.IPartialActivityDim nlPA como atividade parcial
e: If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source
End Sub
Para criar um elemento não linear, como uma articulação de barra com um diagrama ou uma rotura, tem de criar primeiro a articulação de barra. Se o RFEM conhecer a articulação de barra, esta poderá ser acedida através da interface IMemberEndRelease. Esta interface contém os métodos GetData() e SetData(). Ambos os métodos são capazes de ler ou escrever os dados de articulação de barra simples do tipo MemberEndRelease, bem como os dados de uma não linearidade.
No exemplo a seguir, primeiro é ativada uma articulação para a direção x na articulação de barra e, em seguida, o tipo WorkingDiagramType é definido como a não linearidade na direção x. Após estes dados terem sido transferidos para o RFEM utilizando um bloco Prepare-Finish-Modification, a não linearidade é criada internamente. Para preenchê-la com dados, primeiro são obtidos os dados existentes na interface da articulação de barra utilizando GetData ().
Após o preenchimento dos dados (NonlinearityDiagram), estes são novamente transferidos com SetData():
Sub SetNLDiagram()Dim model As RFEM5.modelSet model = GetObject(, "RFEM5.Model")On Error GoTo eDim iApp As RFEM5.ApplicationSet iApp = model.GetApplicationiApp.LockLicenseiApp.ShowDim iModelData As RFEM5.iModelDataSet iModelData = model.GetModelData' modify member end release' set nonlinearity "Diagram" for x translationDim iMemHing As RFEM5.IMemberHingeSet iMemHing = iModelData.GetMemberHinge(1, AtNo)Dim memHing As RFEM5.MemberHingememHing = iMemHing.GetData()memHing.TranslationalConstantX = 0memHing.TranslationalNonlinearityX = WorkingDiagramType' Set new dataiModelData.PrepareModificationiMemHing.SetData memHingiModelData.FinishModification' create diagramDim tbl1() As DoubleReDim tbl1(1, 1)tbl1(0, 0) = 0 ' u-xtbl1(0, 1) = 0 ' P-xtbl1(1, 0) = 0.02 ' u-x (mm)tbl1(1, 1) = 2000 ' P-x (N)Dim nldHing As RFEM5.NonlinearityDiagramnldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForcenldHing.PositiveZoneType = DiagramAfterLastStepType.TearingDiagramTypenldHing.PositiveZone = tbl1nldHing.Symmetric = TrueDim iNldiag As RFEM5.INonlinearityDiagramSet iNldiag = iMemHing.GetNonlinearity(AlongAxisX)' Set new dataiModelData.PrepareModificationiNldiag.SetData nldHingiModelData.FinishModificatione: If Err.Number <> 0 Then MsgBox Err.description, , Err.Sourcemodel.GetApplication.UnlockLicenseEnd Sub
O procedimento é semelhante para apoios de nós e outras não linearidades.
A seguinte macro VBA mostra a criação de um apoio nodal com um diagrama de não linearidade. O código fonte pode ser encontrado em Downloads.
Sub test_section()' get interface from the opened model and lock the licence/program Dim iModel As RFEM5.IModel3 Set iModel = GetObject(, "RFEM5.Model") iModel.GetApplication.LockLicense On Error GoTo E Dim iSecs As RFEM5.ISections Set iSecs = iModel.GetSections()
' first delete all sections iSecs.PrepareModification iSecs.DeleteObjects ("All") iSecs.FinishModification ' set section on solid Dim sec As RFEM5.Section sec.EdgePointA.X = 2 sec.EdgePointA.Y = 5 sec.EdgePointA.Z = 0 sec.EdgePointB.X = 2 sec.EdgePointB.Y = 8 sec.EdgePointB.Z = 0 sec.no = 1 sec.Name = "solid section" sec.Plane = GlobalPlaneInPositiveX sec.ShowValuesInIsolines = False sec.Type = SectionOnSolidSectionLine sec.ObjectList = "1" iSecs.PrepareModification iSecs.SetSection sec iSecs.FinishModification
' set section on surface sec.EdgePointA.X = 2 sec.EdgePointA.Y = 0 sec.EdgePointA.Z = 0 sec.EdgePointB.X = 2 sec.EdgePointB.Y = 3 sec.EdgePointB.Z = 0 sec.no = 2 sec.Name = "surface section" sec.Plane = GlobalPlaneInPositiveX sec.ShowValuesInIsolines = True sec.Type = SectionViaSurfacePlane sec.ObjectList = "1" sec.Vector.X = 0 sec.Vector.Y = 0 sec.Vector.Z = 1 iSecs.PrepareModification iSecs.SetSection sec iSecs.FinishModification
' get results Dim iCalc As ICalculation2 Set iCalc = iModel.GetCalculation Dim iRes As IResults2 Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1) Dim secRes() As RFEM5.SectionResult secRes = iRes.GetResultsInSection(2, AtNo, ShearForceVy,ContinuousDistributionWithinObjects, False)